home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 5
/
Aminet 5 - March 1995.iso
/
Aminet
/
docs
/
misc
/
TMapFAQ.lha
/
atg.txt
Wrap
Text File
|
1995-02-06
|
49KB
|
1,097 lines
Amiga Texturemapped Games FAQ V 0.25
Table of contents
I. Introduction
1. What is Texturemapping ?
2. What are the problems of Texturemapping on the Amiga ?
3. How can they be solved ?
II. Short reviews of all demos/games known to me
1. Demos
2. Game-Demos
3. Games
III. Rumours and other infos department
IV. Doing texturemapping with emulators
1. Hardware-Emulators
2. Software-Emulators
V. Algorithms
1. Terence Russells algorithms used in Wolf3D-2.lha
VI. The Amiga Texturemapping online conference
1. The invitation
2. Some hints for people who do not use IRC often
VII. What can YOU do to support this FAQ ?
I. Introduction
1. What is Texturemapping ?
Texturemapping is a method of wrapping bitmapgraphics around
vectors or 3D based graphics in common. For games, texturemapping
is mostly used doing very realistic Dungeons.
In contrary to a dungeon like in Dungeonmaster or Eye of the Beholder,
the player is not limited to some few directions, but he can turn
around in TRUE 360 degrees, like in real life. Often the graphics
is more realistic than the graphics of such block graphics games
and especially the opponents of the player are done very well
(using texturemapping and vector graphics ...)
Texturemapping is used for role playing games and for dungeon action
games (some of them able to handle more than one player at the same time).
The most famous such games are Castle Wolfenstein and DOOM. Castle
Wolfenstein is for PC and Mac, DOOM is for PC (and soon for Mac too).
There are probably more texturemapping action games than texturemapping
role playing games.
The original creators of DOOM did no port to the Amiga and won't do
so in the future. All the talk about "Amiga DOOM" is to do a similar
game on Amiga, not the original DOOM. Most people speak of "Wolfenstein
style" and "DOOM style" graphics engines to describe how GOOD the used
texturemapping in a game is. DOOM engines are superior to Wolfenstein
engines.
2. What are the problems of Texturemapping on the Amiga ?
Texturemapping needs to put single pixels to a screen, not only LINES
like in vector graphics. So you need both a fast CPU and a fast graphics
for doing texture mapping.
On PC (and on Mac) the color of each pixel is described by ONE BYTE...
this is the so-called CHUNKY PIXEL MODE. On Amiga, the color of each pixel
is described by EIGHT BYTES (for 256 colors). This is the so-called
BITPLANE GRAPHICS. Easy to understand, Chunky pixel is better for
texturemapping than bitplane graphics, as bitplane graphics only
has 12.5% of the speed of chunky graphics. Of course, if you take less
thean 256 colors the speed is better, and i was told, in this way you even
may get a better speed than doing chunky graphics.
Second thing, even if the 68040 is very fast, not everybody has got such
a thing(i have :)))) ). But on PC most gamers have got a 80486 (Which
probably is slower than the '040, but much faster than the '020). It is
probably not possible doing texturemapping with an 68000. In addition,
texturemapping should have 64 colors AT LEAST (maybe extra halfbrite
on ECS ...)
Third, a lot of companies let the Amiga alone (Boooooh... :((( ), and in
special they did not want to risk coding something DIFFICULT on Amiga.
And some coders simply are moronic DOS-lovers (greetings to ID Software
(they did DOOM) and to Richard Garriot of Origin at this place... i hope
they $"&$/&$"/$"/& (censored) !!!)
3. How can they be solved ?
A) Copper Chunky Modes
I told you before, that the Amiga is not capable of doing chunky modes.
That is not 100% the truth. There is a type of copper cheat (the copper
is one of the Amiga's graphics coprocessors), that in fact DOES chunky
modes. The problem with this graphics mode is, it can only handle a
resolution about 100x100 to 130x120 pixels (i do not know exactly, as i
am no specialist in coding texturemapping ...) Compared to PC Games with
320x200 texturemapping this may look ugly ... (but it should be mentioned,
games on PCs (at least on PCs that are not these absolute high-powered
ones...) often do not use full screen graphics, and so often too use such
resolutions. Copper chunky can't do 1x1 or 2x1 pixel resolution or
something like that (i do not know exactly what are the limits for that
Copper tricks... maybe an expert inc coding such things could tell me ?)
B) Chunky to Planar Conversion Routines
A Chunky to Planar Conversion Routine is a part of a texturemapping code,
that takes graphics in chunky (one Byte per pixel) as input, and puts it
as Bitplane Graphics on the Screen. Of course, this method needs much
CPU-power. For most demos/games, you should have at least a '030 to get
it smooth... and a lot of demos using this technique do not have FULL
texturemapping... that is, they for example have no stairs, and everything
on screen is on the same height level. Copper Chunky does this better, but
has a low resolution... of course a '040 with a Conversion Routine can
do fine things...
C) Using a graphics board
Graphics boards for the Amiga do not use Bitplane graphics, but, in fact,
Chunky graphics. The problem is, not many people have such boards in their
systems, in difference to the PC, where all graphics is based on such
boards. But some coders said, they maybe will do an additional "graphics
board version", that features the fast graphics chips with their chunky
graphics... there is even a texturemapping demo running on EGS (EGS is
a standard for Amiga graphics boards).
D) Demo-Groups do the Games
As those people who can do texturemapping best (on PC) often are
DOS-lovers, on Amiga a lot of people of the demo-scene and others, who
are not employed at software firms, began to code... and as software firms
want to SELL, they will probably sell the finished products, even if they
are Amiga-only... And of course there are firms DEDICATED to the Amiga,
like Team17 ... they are in this texturemapping business, too ...
II. Short reviews of all demos/games known to me
The short reviews are done in a specific format, mentioning Name, Author
Name (or name of one of the authors), Minimum System, Recommended System,
Engine style, How smooth the scrolling is and how good the pixelresolution
is. Then they are followed by a short description of the demo (of course i
could say more of the most, but there are a lot of demos reviewed...) Then
i list the E-Mail of the author (if available) and where on Aminet sites to
find the demo (if possible). I recommend using ftp.uni-paderborn.de or
src.doc.ic.ac.uk or another site with complete Aminet. Some smaller sites
only have got the latest uploads to Aminet. Wuarchive is a good choice,
too. And there is another good site called ftp.netnet.com or something
like that. You could look at ftp.luth.se, too.
Used abbreviations :
Minimum/Recommended System
All = All Amigas with 1 MB chip at least
020 = All Amigas with 68020 at least
AGA = All Amigas with AGA
030 = All Amigas with '030 at least
040 = All Amigas with '040 at least
060 = All Amigas with '060 at least (Joke! :))) )
FPU = All Amigas with FPU at least
EGS = All Amigas with EGS graphics boards
Engine style
Low = Engine worse than Wolfenstein,
Wolf = Wolfenstein-style engine
:) = A little Better than Wolfenstein, worse than DOOM
:):) = MUCH better than :), but not DOOM ...
DOOM = DOOM-style engine
Bey = Engine BEYOND DOOM
Smoothness
VSm = Graphics very Smooth
Smo = Graphics smooth
NSm = Graphics nearly smooth
Not = Not very smooth graphics
Pixel resolution
Cop = Probably copper chunky or some other copper cheat, maybe i am
wrong. In special CopL says low pixel resolution, CopM medium
and CopH says high resolution (but i think it is impossible
of doing a copper display with a pixel resolution you could call
HIGH). CopM probably is worse than Med. I used the CopL-CopM
abbreviations only to have SOME METHOD to differentiate
between different kinds of copper displays.
Low = Low resolution (probably something around 2x2 or worse...)
Med = Medium resolution (probably something around 2x1 or 1x2 ...)
High = High resolution (probably 1x1 ...)
Coded by
(P) = Single Person
(G) = Demo group
(PO) = listed person is one of those doing the thing... but there are
others...
(SF) = Software firm
All speed remarks are relative to my own system (hehehe...), an A4000/040
with 14 MB RAM and a Piccolo SD64 graphics board (not the standard Amiga,
isn't it ?) If you have an Amiga 1200 without accelator and did some tests
you may wish to mail your results to me ...
I have to remark too, that the comments are NOT objective... i like some
demos and games, and do not like others... no one should take it as an
insult, if i give his favourite demo a bad mark... it is only a try done
by me... if you think the other way round, tell me... maybe you can
convince me to change the FAQ as to one specific demo :))) I chose to be
STRICT in the remarks i had to do ... in order to show the differences
between the tested engines ... but of course i know how much work it is
even to do a texturemapping demo in LOW resolution with a TM-Engine that
suxx...
Sometimes i wrote something like Low/Wolf... then i did not want to say
Low, and not Wolf... again... everything very subjective ...
Ah... about that "recommended system" things... Just guesses...
Nearly all of the demos are on Aminet and for most of the demos
you will find in the FAQ in which directory. Most of the demos
also are (for the Germans reading this FAQ) available on the
Birdland BBS (number found at the end of this FAQ).
1. Demos
Only Demos with texturemapping parts that could be used in games are
mentioned... no textured spheres, cubes and such things... all things
mentioned in the chapter "Demos" will probably never get games ...
************************************************************************
Mindflow Stellar (G) AGA (4 MB RAM) AGA (4 MB RAM)
:) NSmo Med
One of the effects of this demo is a dungeon that looks nearly like the
dungeons of the game Ambermoon. The textures of the ceiling and floor
are MUCH better than in Ambermoon, but Ambermoon is smoother ...
Author : Stellar (One email of a Stellar-Member is
jsaarinen@kone.fipnet.fi, this is Nose/Stellar)
File : /pub/aminet/demo/aga/mindflow.lha
************************************************************************
Motion Bomb (G) AGA AGA
DOOM Not/NSm Med
One of the effects of this demo is a FULL texturemapped DOOM engine with
stairs and all. Bravo, Bomb !!! You should do a game out of this :)))
This demo did not run on my A4000/040, but i did get a patch from some-
one... i do not think this patch is on Aminet, though ... one last word
to the engine... there are stairs and all included, but the Speed i think
is not that sufficent for a game ... okay for a demo though...
Author : Gengis/Bomb
File : /pub/aminet/demo/par94/MotionDisk1.dms
/pub/aminet/demo/par94/MotionDisk2.dms
************************************************************************
Doomed Pearl (G) All All
Low VSm CopL
A demo where you can use the joystick to wander around... but i decided
not to do it to the Game-Demos, because the only intention to do this one
was, to prove it is possible of getting 50 fps on a plain A500. Someone
of Pearl tried to enhance the engine, but as this did not work, the demo
died. Talking about resolutions, there are copper chunky demos with
better resolution.
Author : Netrunner/Pearl (9308938m@lux.levels.unisa.edu.au)
File : /pub/aminet/demo/euro/Pearl.Doomed.lha
************************************************************************
Phobos Cydonia (G) All (???) All (???)
Low Smo CopL
One of the earlier approaches to Amiga texture mapping. It has no floor
textures and turning around does not look like it SHOULD... but asides
from that the speed is impressive. You can use your joystick to walk the
dungeon, in contrary to most not-game demos. The resolution is weak.
Author : ???
File : ???
************************************************************************
Fullmoon Fairlight (G) AGA AGA
Low NSm/Not Low
Even if Fullmoon is a very nice demo, the texturemapping part is not very
well done. The scrolling is not smooth, there are no floor and ceiling
textures and the resolution is low. The not texturemapping related parts
of the demo are nevertheless great !
Author : ???
File : ???
*************************************************************************
HOI-SAGAIII TEAM HOI (G) AGA AGA
Low NSm/Smo Low
The texturemapping part of the demo has no ceiling textures, and the floor
textures are not very well done. The speed is better than that of most
such "little hacks", but there are better texturemapping demos than this
one. Aside from this flaw, HOI-SAGA III is (looked upen on it as demo in
common) okay.
Author : Teamhoi@SterrBBS.nl (or was it TeamHoi@SterBBS.nl ???)
File : ???
*************************************************************************
2. Game-Demos
Game-Demos are Demos that are probably on their best way of getting games.
Some of them actually will get Games, some not ...
*************************************************************************
Warp_S O. Groth (PO) 020+HD AGA + Fast Ram
:):) Smo/Vsm Low/Med
Really a nice engine, the only DOOM style engine on Amiga with monsters
running around. This one will be a game 100%. Playable demo will be out
maybe February or March. The resolution and graphics are not the best at
the moment, but the next Demo out will (according to the beta i saw) be
much better. They got a new graphician, who is very good (i know this
one :))) ). Maybe the most promising demo of them all. It will get a
graphics board version, too, and an extra version that is '040-optimized
(higher resolution !!!) was promised sometimes... Was in the beginning
called Texmapp... The release version probably will be faster than the
demo. Uses not only 90 degree walls. Decompresses monster GFX in real
time.
Author : O.Groth@link-M.muc.de
File : ???
*************************************************************************
POOM Parallax (G) AGA 030+AGA
:):) Smo High
Maybe the most famous Amiga texturemapping demo. But it got very quiet
around it since October '94. Maybe they dropped it? Or maybe they will
bring out a complete game from one day to the other? There is a V0.3 on a
finnish BBS ... the coders did some talk about a "maybe" graphics
board version. POOM0.2 only has rectangular walls. The phone number of
the Finnish BBS is +358 18 161 763. If you are from Finnland and want to
be nice, maybe you could send me a copy ??? Per EMail, for example ???
POOM0.2 is on Aminet ... As to V0.3 Beta, it is much smoother, you can
select a resolution from 32x32 up to 320x256 (the latter did not work
on my system, though...), you see the gun and there are some new
textures (a complete floor texture too...). As soon as you quit the
Beta, it crashes. The Beta does not run with 2 MB. Someone said,
the guys of Parallax would be working on something else at the moment,
so the next release of POOM would be some time away.
Author : ???
File : ???
*************************************************************************
BSP John Fehr (P) All 040
DOOM Not Low/Med
This Demo reads an original DOOM-Wad-File and tries to interpret it. This
is SLOW, because WAD-Files were made for the PC, not for the Amiga ...
they are Intel-optimized... the WAD-interpreter BSP has no ceiling or
floor, but many features (because of the WAD ...) As it is No-Aga and
not very smooth, i do not think it is more interesting than for example
POOM or Warp_S. But it was probably VERY MUCH work to make this thing
reading .wad-Files ... and those multiple textures things probably cost
a lot of speed too... there are AGA versions in the archive too... they
too do not have floor and ceiling, but look better than the
ECS-version ... I was told, it seems, John Fehr now is doing something
further with his engine, but as to now i have no conformation from
himself (so, what about, this, John, if you read this FAQ ? :) )
Author : fehr@rpm2.aes.mb.doe.ca
File : /pub/aminet/gfx/misc/bsp1.0.lha
*************************************************************************
Tmapdemo C. Green (P) AGA AGA
??? NSm High
This demo comes with complete source... the author allowed doing a game
with his routine (he probably won't do himself ...) The engine is quite
cool, but very incomplete... just some blocks with Pics on the walls...
no collision check... but a floor...
Author : chrisg@commodore.COM (this email of course does not work ...)
File : ??? (with source)
*************************************************************************
Tmapdemo S. Boberg (P) EGS EGS + EGS board
??? VSmo High
A Port of Chris Green's texturemapping engine to EGS... according to the
author a quick hack... probably won't get any further...
Author : ???
File : ???
*************************************************************************
Dentaku26 A.J.Amsel (PO) AGA/CD32 AGA/CD32
Wolf VSm CopL/CopM
Dentaku will be a Wolfenstein/DOOM-style game (probably with level editor
and serial device support). A.J.Amsel said to me, a demo will probably be
released in April 1995. An older demo (executable from September) is
available on ftp.luth.se. According to the mail information A.J.Amsel gave
me, he and the others formed now a software company which is called
Silltunna Software. They are two Coders (one of them A.J. Amsel), one artist
and Alistair Brimble doing the sound. The game uses a copper display for its
texture mapping routine. If you are a coder, an artist or a sound
specialist, you may wish to contact Mr. Amsel. Maybe you could join them
in there project (Mail to A.J.Amsel@exeter.ac.uk). A former Demo of
Dentaku was DentAWolf, but it has not much to do with Dentaku as
it is now. The ratings for DentAWolf are Low/Wolf,VSmo,Low.
The version of Dentaku found at ftp.luth.se is only optimized for
low end machines (but in my opinion it is good enough on high
end machines... maybe there is even room for an improvement of
the engine :))) And the engine does >20 fps on low end machines
too...)
Author : A.J.Amsel@exeter.ac.uk
File : /pub/aminet/demo/aga/dentwolf.lha (DentAWolf...)
ftp.luth.se/pub/aminet/demo/aga/dentects.lha (Sept. Executable
of Dentaku26 ...)
*************************************************************************
ChunkyMaze D. Bryson (P) AGA AGA
Wolf VSmo Med
A little dungeon with flickering torches and some pictures pinned to the
wall. It has no floor or ceiling textures and in some distance the
textures do not look nice. But there are worse tries. This project is
(even if there are better approaches) still alive, but as David Bryson
told me, the problem is the TIME. Anybody willing to help him, should
contact him per email. He did not do anything further by himself, but
Lee Metcalfe did some very nice graphics for the demo, and Paul Heams
coded a little further. David would like it, if someone with LOTS of time
picked this demo up. He would help this one with the source, of course.
I found a very similar demo on my harddisk (even the same textures...)
which is called wolf. I think it is an earlier or later version of
ChunkyMaze, but i do not have the docs.
Author : ceedb@cee.hw.ac.uk
File : /pub/aminet/gfx/aga/maze.lha
*************************************************************************
TextDemo5 J. Hendricks(P) 020 030
:) VSmo Med
In Fullscreen probably the fastest engine on Amiga (okay, POOM has floor
and ceiling textures and is not much slower...). Textdemo has Lightsources,
not-rectangular walls and the resolution and screen size can be
customized. The demo has OCS, ECS and AGA versions. It uses some very
tricky Chunky2Planar code (using even the blitter...). There is a
TextDemo6 in work, and as i was told this one will probably be one of the
best texturemapping demos on Amiga.
Author : john.hendrikx@grafix.xs4all.nl
File : /pub/aminet/gfx/misc/TextDemo5.lha
*************************************************************************
TextDemo6 J. Hendricks(P) ??? ???
??? ??? ???
A long time, there was nothing new about Textdemo, but appearently, there
will be a release this or next week. This release will be TextDemo5.7,
which is near the features TextDemo6 will have. Since quite a time there
are Beta Versions of this ones floating around (that is : to people
that are working at the project with John) and i was told, the engine
would be "virtually playable" on a 50 MHz '030 with 320x256 and 1x1
pixels.
Some expected features :
- Realtime movement
- 128x128 textures (looks MUCH better according to John)
- Multiple height walls :)))
- Floor textures
- "Bouncing movement"
- Object-mapping-code for monsters included
- Textures take 24 Bit as original (so port to graphics board version
would be easy)
I did not see TextDemo5.7 up to now, but this sounds WELL :)))
Asides from Johns Mail i got info from Mike Bromery (davereed@wam.umd.edu),
who told me, that John would have joined with David Bryson and he himself
and Tomwoof would have joined too. Mike worked with Jason Freund before,
and after Rot3D died, he tried to work with Jason Doig of Dogenstien3D.
But it seems, Jason Doig lost his internet account, and so Mike got to
John Hendricks. Mike said, there probably would come two projects out
of this movement, but the next release still would be called TextDemo6.
Release date of the demo will probably be the 12th or 13th February
1995.
Author: John.Hendrikx@grafix.xs4all.nl
File: Not yet available
*************************************************************************
Reality AGA UWDesign(G) ??? ???
??? ???
This project is at present a Wolfenstein type engine that has up to now
not made it to a public release. I got some infos about it :
- Aimed for A1200 and CD 32
- Static and moving objects
- Solid and see through walls
- Floor and ceiling textures (will be done later)
- 1x1, 2x1, 1x2 and 2x2 pixel resolutions
- walls at any angle and of any length
- 64 colour GFX, maybe soon 128 or 256 colour GFX
- external back drop pictures
- simple multi height walls
- graphics board version (will be done later)
- ECS/OCS version (later, with some reduction)
- 320x256 1x2 in 7-8 fps on A1200 with 4 MB Fast
- 320x256 1x1 in 5-6 fps on A1200 with 4 MB Fast
There will probably be a demo release in 2-3 weeks ...
Author: ???
File : Not yet available
*************************************************************************
Dogenstien3D J.D.Doig (P) AGA AGA
Low/Wolf VSmo Low
Texturemapping engine where you can see the gun while walking around. As
to the graphics, most other engines are better. I don't think this one is
still around. The first version was called Dog3D.
Author : jasond@cee.hw.ac.uk (it seems, that this is no longer valid)
File : /pub/aminet/gfx/misc (if it is still there ...)
*************************************************************************
Wolf23_ish Chris Colman(P) AGA AGA
Low VSmo Low
A "first try" texturemapping demo. In the Readme the author writes he will
make this one better. It is NO copper chunky. But "as is" it is not very
good. An older version was wolf2.lha. Maybe another demo i found
somewhere (but lost the readme...) is an older or newer version of this
demo (it is quite similar). It is called wolf10. But maybe it is only a
similar demo from another author.
Author : cpc16@cus.cam.ac.uk (this account is no longer valid ...)
File : /pub/aminet/gfx/misc/wolf3.lha
(wolf10 is /pub/aminet/gfx/misc/wolf.lha)
*************************************************************************
Wolf3D T. Russell (P) All All
Low NSm Low
Another "first try" demo. I do not know anything about what got with it
after this release.
Author : russell@cpsc.ucalgary.ca
File : /pub/aminet/dev/src/Wolf3D-2.lha (with source)
*************************************************************************
Rot3D J. Freund (PO) FPU+1.5 MB FPU+1.5 MB
Wolf VSmo Med/High
One of the first, if not THE first texturemapping engine on Amiga
(now in its latest version). The wood textures of the demo look quite
well, as do the stone textures, but there are no floor or ceiling
textures and POOM, TextDemo5 and Warp_S are better. If no one picks this
one up, it will die. The authors said they would help a potential
"up-picker".
Author : freund@cis.uab.edu
File : ??? (Source also available on Aminet)
*************************************************************************
3. Games
*************************************************************************
TrickOrTreat D. Stuart (P) All All
Wolf Smo Low
Little texturemapping game, where two players try to shoot each other. The
graphics is not the best and there is no floor or ceiling texture, but it is
the first texture mapping action game on Amiga (yes, it is this one, NOT
Fears !!!) Even if the graphics is not comparable to Wolfenstein, the game
is a lot of FUN. The author wrote he was looking for some work in coding the
Amiga.
Author : ???
File : Amiga User International 11/94 (Coverdisk 45)
Or : Duncan Stuart,10, Bramble Close, The Beeches, Uppingham, Rutland, LE15 9PH
*************************************************************************
Fears BOMB (G) AGA AGA
Low/Wolf VSmo Low/Med
This is a Wolfenstein clone for Amiga. The walls are better than nothing,
the floor textures nearly nothing, the monsters do slide instead of walk,
but it is a COMPLETE GAME. It is shareware. There is even sound while
playing. And it is really FAST.
Author : Gengis/Bomb
File : ???
*************************************************************************
Ambermoon Thalion (SF) All 030
:) VSmo Med
Ambermoon (do i have to explain this ?) is probably the best fantasy RPG on
Amiga. Using a cool texturemapping routine. Okay, the monsters of Ultima
Underworld on PC are better, but what do you want? This one is LoRes, 32
colors !!! One minute of silence for Thalion... may they rest in peace...
OR be back and do something like that in AGA ??? :))) But sure, that won't
happen... and the programmers for Ambermoon are now at Blue Byte, doing
Ambermoon's sequel Albion for PC only... BLUE BYTE SUXXXXXXXXXXXXXXX!!!
Ambermoon is a commercial game.
*************************************************************************
Legend of valour ??? All ???
Wolf(???) ??? Low (???)
Legend of Valour is a texturemapping fantasy RPG on Amiga. It is a
commercial game. I do not own it and only saw it once, so i can't say much
about this one. But it is not such BIG stuff like Ambermoon.
*************************************************************************
A last remark for this chapter : The game DeathMask is no real
texturemapping. It is a block graphics game which scrolls around while you
turn 90 degrees. Better play Hired Guns ...
*************************************************************************
III. Rumours and other infos department
1. Maybe DSA 2 (a texturemapping RPG with a really cool engine already
released on PC) will come to the Amiga, maybe not. I heard rumours about
a spring release (and my software dealer said there would be a good
chance for this one to be ported). I do not know if it is AGA, but i
think, if they do it, it will be AGA ...
2. Team 17 is currently doing Alien Breed 3D, a DOOM clone. They will
use copper chunky (see above), and full texturemapping (stairs,
different levels of sight and all ...) They even said something about
cool water effects in the game. Since December they said they will
release a demo soon... but as far as now, this demo is not released.
3. There are rumours about ACID Software doing a clone.
4. Some guy on the net wrote there would be a clone from some polnish scene
member. He could not remember the name, though, and i do not know, if
this guy is reliable.
5. According to Amiga Report 233, AGE Entertainment is working at a
scrolling dungeon game. The game should come out as "Paranoia" and the
project began quite a time ago. According to the article in the meanwhile
the programmers think of the Amiga as a dead platform (the programmers of
Paranoia, not AGE Entertainment !!!), and even if they wanted to finish
the ECS version of the game, they wouldn't do the AGA version and the
CD 32 version that were planned at the beginning. Nor would they do the
planned sequels to the game.
6. Some time ago a group looked for coders for porting the game BOOM that
they were doing for the Atari Falcon to the PC and Amiga. I do not know,
if they found any Amiga programmers for doing the port. The game should
be in three parts, and one of the three parts would be a DOOM style
action game. I heard, it would be near finished (or finished...) for
PC ... (EMail : rrfriede@cip.informatik.uni-erlangen.de)
7. In the latest add from my software dealer there were announced some games
for Amiga AND PC that use texture mapping. These games are Body Count,
The castle of Dr. Radiak and the sequel of Elder Scrolls, Daggerfall.
I do not know, if this is an error or what (as i never heard anything
about it before ... and usually such things do not go unnoticed...) And
some of these releases were marked as CD and there was NOTHING written
about CD 32 ... this looks strange... but maybe at least ONE is TRUE
(if so, i hope it is Daggerfall :))) ).
IV. Doing Texturemapping with Emulators
1. Hardware-Emulators
Hardware-Emulators, that is ... putting INTEL-PROCESSORS in your poor little
Amiga. You want to do THIS ? Oh, than you are running PC games, not Amiga
ones... therefore i do not write ANYTHING about it in my FAQ. Because this
is nearly no emulation anymore... it is ... gaming on PC ... there are
quite well emulators of this style called "GoldenGate".
2. Software-Emulators
There are some software PC emulators, but for games like DOOM they are not
useful. They are slow and only emulate a 8088 or 80286. DOOM needs a
80386 AT LEAST to run. Maybe on PC Task 3.0 Wolfenstein will run. But the
speed (espescially the speed of the graphics) surely is a problem. Maybe
with a graphics board, but probably even this is too slow. So ... wait for
PC Emplant's CPU transcription mode (this one will not be included in the
first version of the emulation software, it will come as a free update
later ...)
Second ... Mac emulation with software... there are two emulators...
AMaxIV and Emplant... as i heard AMaxIV does not run on AGA ... and it uses
tricks to be able running with a 128KB ROM ... i doubt games running on
this one, but maybe i am wrong...
On Emplant (which i own myself) i tested four texturemapping games for Mac :
The demoversions of these games (which i tried...) are on ftp.hawaii.edu
in /pub/mac/info-mac/game/com. You will need StuffItExpander to decrunch
them.
Wolfenstein : Runs on my A4000/040 with reasonable speed (even if i do not
use the graphics board ... with PAL Hires AGA ...), but only with the
smallest screen. Not very well coded, as it is not very smooth on the
graphics board either... (okay, with 320x256 it is something near
smooth ...)
Sensory Overload : Wolfenstein Clone, but i do not like the graphics...
okay, the screen is bigger than most of these demos for Amiga... but the
graphics is not much better... i think worse... Sensory Overload does not
run well without a graphics board.
Pathways into Darkness : Wolfenstein clone from Bungie (Bungie1@aol.com),
i think the graphics is better than Wolfenstein, but Wolfenstein has a
background music and PID don't ... it is slow, but in LoRes playable
without graphics board... not much faster with graphics board, though ...
Marathon : The absolute Mega-Game ... rating, if we do it as with the Amiga
demos above : BEY !!! (Yes, this one is MUCH better than DOOM ...) If you
are doing EVERYTHING to play DOOM on Amiga, take this one, take the smallest
screen size, no music, select that the game only displays every second
line... and run it on at least a 4000/030. But do not show it to your PC
friends, they will LAUGH at you, if you do not own a graphics board...
(i did, before i got mine :((( ) On a graphics board, Marathon is FANTASTIC,
better speed than Amiga graphics demos, maybe even better than DOOM on PC
(remember, Marathon is 640x480 ...) I use a resolution of probably 400x300
in Lores, and it is absolute smooth on the SD 64 ... Marathon is the sequel
to Pathways into Darkness.
One Last : It is rumoured, at 15th April, DOOM II will be released for
Mac... 68040 and PowerMac, to be exact...
V. Algorithms
In this chapter i will put algorithms or coding hints sent to me.
Please do not send code (this would be MUCH to specific for this
FAQ).
1. Terence Russells algorithms used in Wolf3D-2.lha
Basic structures and algorithms used to create the Amiga Wolf3D demo.
The techniques I have used do not involve ray-casting for the rendering
or BSP trees for hidden object removal. Instead my style of rendering
has more in common with flat-shaded polygon rendering used in many
older demos.
Sorry for the crappy organization. I'm a fourth year computer science
student and I haven't much time to do this properly.
The Maze and basic objects:
The maze is essentially two dimensional and if looked at from above it
would appear to be a grid whose squares are outlined with walls or are
bisected with doors.
Each square from above is 64 x 64 pixels in dimension. I use pixels as a
unit of measurement since in fact each point is represented by a pixel
column in a bitmap.
The use of the grid analogy is purely conceptual, however, since using a
grid structure would create some complications (which are described under
'collision detection' and 'door movement'). For purposes of discussion I
will refer to the X and Y axis' as being the east-west and north-south
axis' (respectively) of the grid from an above view. The Z axis will
refer to the axis that comes up out of the grid. (This runs contrary to
how I actually programmed the demo as the Y and Z axis are swapped).
Walls and doors are represented by the same basic unit: the block.
A 'block' is from a structural standpoint the canvas onto which wall and
door imagery is 'painted' or 'mapped'. Every wall and every door in
the maze is associated with a block. In fact a block may consist of
up to 4 walls that represent the 'north', 'west', 'south', and 'east'
faces of the block.
From a programming view a block consists of 256 points plus a center
point. The center point positions the block relative to the bottom-left
corner (0,0,0) of the maze. The remaining 256 are divided into 4 groups
of 64 points, each of which are associated with a particular block face.
All 256 points are relative to the block's center point. (Hence,
only one set of these points need be maintained for all blocks within a
maze). As can be imagined the end-points for each face overlap.
The walls points are given the following offset ranges:
SOUTH: (-32,-32,0) to (31,-32,0)
NORTH: (31,31,0) to (-32,31,0)
EAST: (31,-32,0) to (31,31,0)
WEST: (-32,31,0) to (-32,-32,0)
Notice that for each face the ranges are given in an order which implies
counter-clockwise as viewed from above the grid. This is important for
properly rendering the wall graphics and for backface culling, that is,
removing walls that are facing away from the observer/player.
Each wall/door has an associated 64 x 64 pixel bitmap. Each 1 pixel wide
column of the bitmap is represented by one of the points found along the
wall/block face. Hence point 0 of the south wall of a block may represent
the 0th column of a 'stone wall' bitmap. From the programmer's view I use
the wall point's ordinal value (it's relative position) to offset/index
into the bitmap image.
Previously I mentioned that blocks are used for BOTH walls and doors.
The attentive reader may have noticed that the offsets for the walls
would create doors that are not located in the center of a block. Since
my aim was to create a near Id wolf-clone I had to specify extra offsets
just for the doors. These new offsets simply have either the X or Y
component zeroed depending on which direction the door is to lie along.
This allows the doors to appear in the center of a block. This also makes
it easy to have sliding doors since all I really need to do is move the
associated block's center point in the direction the door opens. The door
then slides 'into' an adjacent wall block which takes care of hiding the
door. (This is explained later in the next section).
RENDERING - this is just a quick and dirty algorithm
Translate the block centers by an amount equal to the players relative
maze position. Now rotate these centers using the players attitude or
angle of direction, also relative to the 0,0,0 point of the maze.
Next rotate the 256 wall points using the same players direction angle.
For each block center, translate a copy of the 256 wall points to the
block center such that the block center is in the middle of the points.
Now that we have a list of block points that are relative to the player's
position we want to render the blocks. To determine what blocks are
visible I simply sort them by there Y value, (which is now relative to
the player's position). I used this method since at the time I did not
know of the BSP tree method for determining visible polygons.
Once we have a list of sorted blocks, we can immediately discard the
blocks that fall behind the viewer. From this point we render each block
until the player's view is completely filled with graphics.
Since I don't want to draw all of the blocks that are in front of the user,
(just the ones that fill up the view), I use a pre-render loop which
determines what portions of walls/doors are visible.
To determine what is visible I use the sorted list of blocks and an array
called the xBuffer. This buffer is one dimensional and has an entry for
every vertical column of the user's game display.
The algorithm involves a lot of simple parts that when put together create
a fairly complex program. Hence I will attempt explain it using two similar
explanations.
EXPLANATION 1:
I use the following algorithm:
clear the xBuffer
while xBuffer is not full do
get the block closest to the player
for each face of the current block do
if current face is invisible then
skip face
else "current face is visible"
for each of the current face's 64 points do
perform a perspective calculation on the point to
get a screen X1,Y1 point.
duplicate X1 into X2
mirror Y1 across the center of the display to get Y2
the line (X1,Y1)-(X2,Y2) forms a column of screen points
onto which a column slice of the wall/door bitmap will
be mapped/scaled.
if X1 lies with in the range of the xBuffer
(usually 0-319 for a full screen) then
check xBuffer[X1].height to see if a column
hasn't already been written there.
IF height of current line > xBuffer[X1].height THEN
xBuffer[X1] = current column and it's associated
bitmap imagery.
else
discard this column as being invisible.
endif
"If all I did was insert just the columns into the
xBuffer there would be gaps in-between the columns
do to the perspective transformation, hence
I need a little loop that makes a copy of the
current column back to the previous column of the
same wall."
end-if
end-for
end-while
For example suppose my maze viewing area is 320 pixels across the screen.
Then the xBuffer has 320 elements. Each element is a structure that
records: the half-height of the wall/door from the horizon or the equator
of the viewing area; the bitmap identifier; the pixel column offset into
the bitmap
Now using the xBuffer I have a routine take each element and read a column
of pixels from a bitmap and then stretch and clip the bitmap into the
hidden rendering buffer.
EXPLANATION 2:
while not done do
check closest wall/door's extents
(i.e. the starting and ending X locations as project on the view)
if the extents are outside the viewing area then
discard the wall/door
else
for each of the 64 points/columns of the wall/door
determine where the column is relative to the view area
if the column lies in the view area then
check the corresponding xBuffer element to see if
something hasn't already been written there
if empty then
write the columns height and bitmap column offset
and bitmap identifier to the xBuffer.
else
if current column's height is greater then
write it
else
this part of the wall lies behind some other wall
end
end
end
end
end
end
Starting with the closest block I check each face to determine if it is
visible. Since the faces of the blocks are at angles of 90 and 180 degrees
from each other, at most 2 faces will be visible at any one time.
Once I determine a visible face I use the associated 64 points for that
face to determine visible columns. To each point I add to the Z component
an amount equal to have the height of a wall. Then I run the point
through a simple perspective calculation and I now have a somewhat correct
position for projecting the point onto the player's view.
I next create a duplicate of the point and mirror it across the middle
of the player's view. This gives me two points that represent a line or
column of the wall's bitmap. Since each point of a face is uniquely
associated with a column of pixels in a wall bitmap I can perform some
sort of 'texture' mapping now. Only one thing remains, and that is to
determine the next columns position. Since as you get closer to a wall
the 64 points will be spread out over a greater viewing area, gaps will
start to appear between the columns. These gaps are eliminated by copying
a column up to the next column.
Collision Detection:
Some authors have suggested using a static grid to perform collision
detection with walls. Generally this works very nicely, however, in the
case of Id's Wolf3D there is a slight problem. Id's game supports moving
walls (in other words the secret passage-ways). To perform collision
detection on these moving walls while using the static grid meant that
I would need to either create special case for checking when a wall was
moving, or would have to create a special kind of block: i.e. a moving
wall block. At the time I decided this was unsatisfactory so instead of
using a grid I decided to use the block's center point and a bounding box
around the player. Using this method, collision detection involves
checking each block center to see if it lies within the players bounding
box. This allows me to move blocks at will without worrying about special
cases and is generally pretty quick.
There are many more points to the algorithms I have used, and if you
are interested in understanding them and want to learn a maze rendering
technique that does not involves ray-casting then send some email.
Terence Russell
russell@cpsc.ucalgary.ca
VI. The Amiga Texturemapping online conference
1. The invitation
At 7th February (Tuesday) at 22.00 MESZ (16.00 EST or 15.00 Central US
Daylight Saving Time) there will be a online conference on IRC about Amiga
Texturemapping. The conference will be on a channel name #amitmap.
Everyone who is interested in Amiga Texturemapping is invited. The talk will
be about the future of Amiga Texturemapping and as some programmers already
announced they would be there probably some coding themes. Maybe there will
be the possibility to find more people for an own project.
2. Some hints for people who do not use IRC often
IRC is the online chat system of the internet. Try out the command irc on
your site. If this does not work, contact your system administrator and try
to convince him to install an irc server :))).
As you entered irc, you specify your nick name (the name under which you
will be known), with /nick Nick-Name. An alternative is starting irc with
irc Nick-Name. To enter a channel (a channel is a place for people
discussing a specific theme to meet), you type /join channelname.
Each channelname starts with a #.
To send someone a private message (that other can't read) you type /msg
Nick-Name "...", where Nick-Name is the Nick-Name of the user, to whom you
will send the message. To send a message to all users in this channel,
simply type what you want to say. Usually you should write it in the
following way : Name of the user for whom this message is
primarily : Text.
/who * lists all users currently on this channel.
/list * counts the users on this channel.
With /quit you quit irc.
That are only the basics for irc, but with that knowledge you can be with
us at the conference :))). Irc also has a help-system installed,
by the way.
VII. What can YOU do to support this FAQ ?
1. Support Amiga
2. Write texturemapping demos/games on Amiga :)))
3. Buy Amiga texturemapping games, if they come to a release
4. If you know of any texturemapping game/demo not mentioned in this FAQ
(dungeon-related, no texturemapped cubes and spheres),
or if you have information relevant for me, mail to
- haeuser@minnie.informatik.uni-stuttgart.de
OR
- call Germany 07021/861920 or 862428 or 862429 (Birdland BBS,
i am Magic SN on this BBS ...)
OR
- Phone Germany 07021/51787 and ask for Steffen
OR
- go in irc and look for MagicSN (that's me :))) )
OR
- write a letter to Steffen P. Haeuser, Limburgstr.127,
73265 Dettingen/Teck,Germany
OR
- Do whatever you want ... :)
5. Do the same, if you want to send me critics or beta-releases of demos
to test them :)))))))))))))))) (at least i tried it... maybe someone
would be in FACT that nice :))) )
My internet-account is able to handle BIG UUEncoded mail... :))))))))
6. Spread this FAQ on all nets and BBS's.
7. If you are a coder, and you have a lack of time to code, or you have
a serious problem in coding texture mapping, maybe you find some
interesting EMail-Adresses all over this FAQ ...
8. Send me texturemapping algorithms you see no need anymore in
keeping them private (for this new chapter V)
That's it... as soon, as i hear news about some of the mentioned demos
(or of some new ones ...) i will do a later version of this FAQ. It will be
found in comp.sys.amiga.games at least... maybe soon there will be a later
version of Warp_S or POOM or TextDemo or DentAWolf or... or ...
ciao,
Steffen Haeuser
OR MagicSN (in irc)
OR haeuser@tick.informatik.uni-stuttgart.de (E-Mail, talk ...)